home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / utils / gn2v101 / gnoom2.doc < prev    next >
Text File  |  1995-04-14  |  17KB  |  477 lines

  1.  
  2.                   G N O O M   I I
  3.  
  4.                  The sprite editor
  5.  
  6.                   Version 1.01 - Apr. 1995
  7.  
  8.                written by Nikolai Soumarokov
  9.  
  10.                    * * *
  11.  
  12.     This program was written using the excellent XLIB library by 
  13.     Themie Gouthas. If you don't have it, get it now. It's really
  14.     great.
  15.  
  16.  
  17.     =======================================================================
  18.     DISTRIBUTION
  19.     =======================================================================
  20.  
  21.     This program is Public Domain. You are encouraged to make 
  22.     copies of the program, to give it to other people, to upload
  23.     it to FTP cites and to BBS's, to put it on CD-ROMs, etc., as 
  24.         long as you distribute the program in its original form, that 
  25.         is you distribute all the program files together and do not modify
  26.     them in any way. The program files are:
  27.  
  28.     GNOOM2.EXE
  29.     GNOOM2.DOC
  30.     START.BAT
  31.     6X8B.FNT
  32.     DEFAULT.PAL
  33.     TITLE.PAL
  34.     TITLE.SCR
  35.     TITLE.EXE
  36.     TITLE.GN2
  37.  
  38.     Under no circumstances is this program to be sold. No payment
  39.     to the author is required for using this software. I would
  40.         appreciate, however, if you send me your comments and suggestions
  41.         or simply a postcard or a fax. Your feedback will help me make
  42.     this program better and will also support my further programming
  43.     efforts. Also, if you write a program using GNOOM II, I would
  44.     appreciate a copy. See the end of this document for how to 
  45.     contact me.
  46.  
  47.     Finally, GNOOM II is provided AS IS. The author specifically 
  48.         disclaims any responsibility for any loss of profit or any 
  49.     incidental, consequential or other damages. I did not program
  50.     GNOOM II to do anything harmful, but if something happens, I
  51.     am not responsible for that. Also, while the program works 
  52.     fine on my PC I do not guarantee it will work on other machines.
  53.  
  54.  
  55.     =======================================================================
  56.     OVERVIEW
  57.     =======================================================================
  58.  
  59.     GNOOM II is, well... a sprite editor. The thing is, I needed
  60.     a sprite editor to write my own games. I looked through several
  61.     CD-ROMs and found 4-5 shareware programs. Some of them were not
  62.     bad at all, but they just didn't have the features I needed. 
  63.     (if you're an author of a really powerful sprite editor, sorry -
  64.     - I might have missed your program). OK, some features that make
  65.     GNOOM II different are the following:
  66.  
  67.     - It works in the 320x240 mode. Why? Because I think it's better
  68.       than standard 320x200. For example, if you draw a circle in
  69.       320x200, you get an ellipse. In 320x240 it really looks like
  70.       a circle. This does not mean, of course, that the games you
  71.       create using GNOOM will have to work in the same resolution.
  72.     - It supports scaling and rotation of sprites.
  73.     - It supports up to 24 sprites and stores all of them in one file.
  74.     - The sprites can have variable size (from 4x4 up to 64x64).
  75.     - It supports up to 100 frames of animation.
  76.     - It has all the standard drawing tools (line, circle, box, etc.)
  77.     - It includes user-defined undo.
  78.     - It allows you to paste while preserving the background.
  79.  
  80.  
  81.     =======================================================================
  82.     REQUIREMENTS
  83.     =======================================================================
  84.  
  85.     - 486SX (The program is not well-optimized for speed; it
  86.       might work rather slowly on other systems. On the other
  87.       hand, it might not -- I haven't tested! But after all, if
  88.       you write games, you do have at least a DX2, don't you?)
  89.     - VGA
  90.     - Two- or three- button mouse (If your mouse has only one button,
  91.       you've probably got a Mac :))
  92.     - 400K RAM (Maybe less -- I didn't really test)
  93.  
  94.     
  95.     =======================================================================
  96.     HOW TO START
  97.     =======================================================================
  98.  
  99.     Run START.BAT, or GNOOM2.EXE to skip introductory screens.
  100.  
  101.     
  102.     =======================================================================
  103.     HOW TO END
  104.     =======================================================================
  105.  
  106.     I know on my own experience that nothing frustrates the user as
  107.     much as the absence of an easy way to quit a program. So, I explain
  108.     this at the very beginning: to quit, press ALT and Q or point at
  109.     the "Q" button and press both mouse buttons simultaneously.
  110.     
  111.  
  112.     =======================================================================
  113.     CONTROLS
  114.     =======================================================================
  115.  
  116.     The program can be controlled entirely with the mouse. Both mouse 
  117.         buttons are used, as well as the combination of both (you need to 
  118.         press the right one first, and then, while holding it, the left 
  119.         one). Almost every command has a keyboard shortcut, yet the mouse
  120.     is essential for drawing and some other operations. The following
  121.     is the complete list of all commands with detailed descriptions:
  122.  
  123.     Abbreviations used:    LMB - left mouse button
  124.                 RMB - right mouse button
  125.                 BMB - both mouse buttons
  126.                   K - keyboard shortcut
  127.  
  128.     THE SIZE LOCK (A BOX IN THE TOP LEFT CORNER):
  129.         LMB - toggle the lock on/off
  130.         K   - ` or ~ (on most keyboards the key under Esc)
  131.         When you start the program, this lock is unlocked, so
  132.         that you can select the size of the sprite. To begin
  133.         drawing, YOU MUST LOCK IT.
  134.  
  135.     SIZE SCROLL BARS (TO THE RIGHT AND BELOW THE SIZE LOCK):
  136.             LMB - change the sprite size
  137.         If you change the sprite size after drawing the sprites,
  138.         the sprites will be cropped.
  139.  
  140.     PALETTE (COLOR BOXES IN THE TOP RIGHT PART OF THE SCREEN):
  141.         LMB - change the current color
  142.         BMB - change the color of the mouse pointer
  143.  
  144.     R, G, B
  145.         LMB - toggle the palette control lock
  146.             Without unlocking these you cannot change the RGB
  147.           components of the current color.
  148.     
  149.     < AND > OR SCROLL BARS NEXT TO R, G, AND B  
  150.         LMB - change RGB components of the current color            
  151.  
  152.     PALETTE NAME
  153.         LMB - change it               
  154.         K   - ? (shift + /)
  155.  
  156.     SPRITE NAME
  157.         LMB - change it
  158.         K   - /
  159.  
  160.     ANY OF THE 9 TOOLS
  161.         LMB - select it
  162.         K   - F1..F9
  163.         The tools are (from left to right): point mode, line, 
  164.         ellipse, filled ellipse, rectangle, filled rectangle,        
  165.         fill, cut/copy, paste.
  166.  
  167.     EDITING AREA
  168.         For all the tools except cut/copy and paste:
  169.         LMB - apply the tool with the current color
  170.         RMB - apply the tool with the background color
  171.         BMB - set the current color to the color of the dot
  172.               under the pointer
  173.         For cut/copy tool:
  174.         LMB - copy
  175.         RMB - cut
  176.         For paste tool:
  177.         LMB - normal paste
  178.         RMB - paste while preserving the background
  179.         
  180.     ARROWS UP, DOWN, LEFT, AND RIGHT
  181.         LMB - Scroll the sprite; the line that disappears on one
  182.               side, appears on the other
  183.         K   - arrow keys
  184.         BMB - Scroll the sprite; the line that disappears on one
  185.               side is lost
  186.         K   - CTRL + arrow keys
  187.  
  188.     BI-DIRECTIONAL ARROWS
  189.         LMB - flip the sprite
  190.         K   - ALT + arrow keys
  191.  
  192.     90-DEGREE ROTATE BUTTONS
  193.         LMB - rotate the sprite is its width and height are equal
  194.         K   - Home/PgUp
  195.         BMB - rotate any sprite; some parts might be lost
  196.         K   - CTRL + Home/PgUp
  197.         Warning: this command rotates the sprite around its corner.
  198.         If you want to rotate the sprite around its center point,
  199.         use the rotate ("ROT") command.
  200.  
  201.     < > ABOVE "ROT"
  202.         LMB - change the degree of the next sprite rotation
  203.               (in 15 degree steps)
  204.         K   - < >
  205.  
  206.     < > ABOVE "SC"
  207.         LMB - change the percentage of the next scaling (in 5% steps)
  208.         K   - [ ]
  209.  
  210.     H AND V BUTTONS
  211.         LMB - toggle horizontal or vertical scaling
  212.         K   - H V
  213.  
  214.     UNDO BUTTON
  215.         LMB - undo the last operation
  216.         K   - ESC
  217.  
  218.     USER BUTTON
  219.         LMB - restore the sprite from the user-defined undo buffer
  220.         K   - U
  221.         RMB - save the current sprite into the user-defined undo
  222.               buffer
  223.         K   - ALT + U
  224.  
  225.     ANIMATE, SWAP, AND COPY BUTTONS
  226.         LMB - switch to normal, animate, swap, or copy modes
  227.         K   - A S C
  228.  
  229.     R AND P BUTTONS AT THE BOTTOM OF THE SCREEN (ANIMATE MODE)
  230.         LMB - toggle reverse and bi-directional frame order
  231.               for animations
  232.         K   - End PgDn
  233.  
  234.     < > UNDER "FRAME" (ANIMATE MODE)
  235.         LMB - change the current frame
  236.         K   - < >
  237.  
  238.     < > UNDER "SPEED" (ANIMATE MODE)
  239.         LMB - change animation speed
  240.         K   - [ ]
  241.  
  242.     THE PREVIEW BOX (ANIMATE MODE)
  243.         LMB - copy the current sprite to the current frame
  244.         K   - ENTER
  245.  
  246.     START BUTTON (ANIMATE MODE)
  247.         LMB - continuous animation until the button is pressed
  248.               again
  249.         K   - SPACE
  250.         RMB - continuous animation until the button is released
  251.  
  252.     ONE OF THE 4 FRAMES (ANIMATE MODE)
  253.         LMB - set the current sprite to the one in the frame
  254.         K   - ALT + 1 2 3 4
  255.         RMB - delete the frame
  256.         K   - ALT + 5 6 7 8
  257.  
  258.     ONE OF THE 24 SPRITE BOXES (TO THE RIGHT OF THE PREVIEW BOX)
  259.         LMB - in normal mode: set the current sprite
  260.               in copy mode:   copy the current sprite to the one
  261.                       selected
  262.               in swap mode:   swap the current sprite with the
  263.                       one selected
  264.         K   - sprites  1..12: 1 2 3 4 5 6 7 8 9 0 - =
  265.               sprites 13..24: SHIFT + 1 2 3 4 5 6 7 8 9 0 - =
  266.         RMB - preview the sprite: display it in the preview box
  267.               while the button is pressed
  268.  
  269.     CURRENT COLOR BOX (UNDER THE EDITING AREA)    
  270.         BMB - reverse screen colors (i.e. swap black and white)
  271.         K   - R
  272.  
  273.     CLR BUTTON
  274.         BMB - clear the current sprite
  275.         K   - X
  276.  
  277.     ROT BUTTON
  278.         BMB - rotate the current sprite
  279.         K   - ALT + R
  280.         Normally, to create rotation effect, you would draw the 
  281.         sprite, then make several copies of it, and then rotate
  282.         each of the copies by increasing angle. ROTATING TWICE
  283.         BY 45 DEGREES IS NOT THE SAME AS ROTATING ONCE BY 90
  284.         DEGREES!
  285.     
  286.     SC BUTTON
  287.         BMB - scale the current sprite
  288.         K   - ALT + S
  289.         The remark for the "ROT" button applies here as well.
  290.  
  291.     SAV BUTTONS
  292.         BMB - save palette or sprites
  293.         K   - ; to save sprites or SHIFT + ; (:) to save palette
  294.         Files are created in the current directory
  295.  
  296.     LOAD BUTTONS
  297.         BMB - load palette or sprites
  298.         K   - ' to load sprites or SHIFT + ' (") to load palette
  299.         Files are read from the current directory
  300.  
  301.     D BUTTON
  302.         BMB - load the default palette
  303.         K   - ALT + D
  304.  
  305.     N BUTTON
  306.         BMB - erase all the sprites and start from scratch
  307.         K   - ALT + N
  308.  
  309.     Q BUTTON 
  310.         BMB - quit the program; all the changes will be lost
  311.         K   - ALT + Q
  312.  
  313.     O BUTTON
  314.         BMB - "optimize" -- remove unnecessary black areas from
  315.               the sprites if such areas exist
  316.         K   - ALT + O
  317.  
  318.     ... Hope I didn't miss anything ...
  319.  
  320.  
  321.     =======================================================================
  322.         .GN2 FILE FORMAT
  323.     =======================================================================
  324.  
  325.     It is the simplicity itself:
  326.  
  327.     1st byte:    number of sprites (1..24)     N
  328.     2nd byte:    width of the sprite (4..64)    w
  329.     3d  byte:      height of the sprite (4..64)    h
  330.  
  331.     Then go N*h*w bytes, each of which represents a color of one pixel.
  332.     So, to read sprites' data you will need something like this:
  333.  
  334.     OPEN THE FILE
  335.     READ N
  336.     READ W
  337.     READ H
  338.     FOR I = 0 TO N-1
  339.         FOR Y = 0 TO H-1
  340.             FOR X = 0 TO W-1
  341.                 READ Z
  342.                 SPRITE[I][Y*W+X] = Z
  343.             NEXT X
  344.         NEXT Y
  345.     NEXT I
  346.  
  347.     Please note that the row comes first, and the column second.
  348.     
  349.  
  350.     =======================================================================
  351.     QUESTIONS AND ANSWERS
  352.     =======================================================================
  353.  
  354.     Because I don't have any feedback from users at the moment, I have
  355.     to invent some questions myself.
  356.  
  357.     1. Why is it called GNOOM II? Was there GNOOM I?
  358.  
  359.        Yes, there was GNOOM I and you can probably still find it (but
  360.        I doubt very much). It worked in glorious 16-color EGA mode,
  361.        had no mouse support, and no other way to draw except dot-by-dot.
  362.        All in all, it's best be forgotten about.
  363.  
  364.     2. What's wrong with this program that you do not ask money
  365.        for it?
  366.  
  367.        Well... Nothing really, at least as far as I know. You see, I
  368.        mentioned already that I had been looking for a sprite editor for
  369.        quite a while already, and none of the products I came across
  370.        had the features I needed. All of them were shareware, though --
  371.        from $15 to $30 and above. I am quite sure that there will be
  372.        many people who will not find some useful features in GNOOM II;
  373.        this program is far from perfect, after all. If GNOOM II were
  374.        written by someone else, I would like to use it, but I would not 
  375.        like to register. So why expecting someone else to do this?
  376.  
  377.     3. I have started the program, but I cannot draw! Many other
  378.        functions don't seem to work either.
  379.  
  380.        Click on the small box in the top left corner of the screen
  381.        and try again.
  382.  
  383.     4. The program displays the title screens, but then crashes. Why
  384.        is that?
  385.  
  386.        The title screens use the standard VGA 320x200 resolution.
  387.        The program itself uses the resolution of 320x240. Although
  388.        this resolution is supposed to work on any VGA card, it
  389.        might be that your particular card or computer is an exception.
  390.        Sorry if it is like that.
  391.  
  392.     5. I have created some beautifully animated sprites. How do I
  393.        write a game now?
  394.  
  395.        You sit and program ;). Really, GNOOM II is not a game-
  396.        developing system, but merely a tool for editing sprites.
  397.        The actual programming is up to you.
  398.  
  399.     6. Can I use the sprites created with GNOOM II in a resolution
  400.        other than 320x240?
  401.  
  402.        Yes. Again, it all depends on how you program your game.
  403.        GNOOM II only helps you to draw the sprites and to test the 
  404.        animation.
  405.  
  406.     7. Is it possible to rotate a sprite in less than 15-degree steps?
  407.  
  408.        No. I did not think that was necessary. Anyway, if you think
  409.        it is, tell me -- I'll change this in the future versions.
  410.  
  411.     8. Can I edit sprites bigger than 64x64?
  412.  
  413.        No, but why do you need that? The purpose of GNOOM II is to
  414.        allow editing small images; for large images you can use any
  415.        graphics package. Alternatively, you can combine two or more
  416.        sprites created with GNOOM II together in your program.
  417.  
  418.     9. I try to make an 8-frame rotation of a sprite, but each
  419.        subsequent frame looks worse and worse; the last one is just
  420.        a mess of pixels. Why?
  421.  
  422.        Because you rotate the same sprite several times. The right
  423.        way to do rotations is to make 8 copies of the sprite and then
  424.        rotate the copy #2 by 45 degrees, the copy #3 by 90 degrees
  425.        and so on. Note, however, that the rotation is not perfect; you
  426.        will probably need to make some minor corrections afterwards.
  427.  
  428.     10. What does "gnoom" mean?
  429.  
  430.        Nothing. I've just picked a word at random. One guess: gnoom is
  431.        a mutant gnome.
  432.  
  433.     =======================================================================
  434.     UPDATES AND NEW VERSIONS
  435.     =======================================================================
  436.  
  437.     I do not plan any future versions at the moment, but as I start
  438.     receiving comments I will try to make corrections of possible bugs
  439.     as well as implement useful suggestions. I will not be able to
  440.     send updates individually, but if an updated version becomes
  441.     available, you will most likely find it at the same site where
  442.     you have found the original. Search for the file starting with
  443.     GN2V followed by a three-digit version number.
  444.  
  445.     Update History:
  446.  
  447.     v. 1.00, January 1995    - first release
  448.     v. 1.01, April 1995    - corrected the bug that caused the program
  449.                   to fill empty sprites with random patterns
  450.                   when the "flood fill" tool was used, and
  451.                   also sometimes made the system "hang" upon
  452.                   exit from the program.
  453.  
  454.  
  455.     =======================================================================
  456.     HOW TO CONTACT ME
  457.     =======================================================================
  458.  
  459.     Please, please, please, let me know how you liked GNOOM II. If
  460.     you don't contact me, I will assume that no one is really 
  461.     interested and I have wasted my time programming this.
  462.     There are three ways to reach me, in order of preference:
  463.  
  464.     - fax. The number in Austria is (0222) 238-77-44. Please do not
  465.       write in German, I don't know it!!
  466.     - mail. The address is:
  467.         Nikolai Soumarokov
  468.         Zschokkegasse 91/5/25
  469.         1220 Vienna, Austria
  470.     - phone. The number is the same as fax. This method is the least
  471.       preferred of all, since you can normally reach me only between
  472.       1800-2300 CET, and even at this time not always; sometimes I
  473.       study at the university in the evenings.
  474.  
  475.  
  476.     OK, enough for now. Have fun!
  477.